local function register_pumpboom(sizename, params)
    nssw:register_mob("nssw:pumpboom_"..sizename, "Pumpboom ("..sizename..")", {
        type = "monster",
        hp_min = params.hp_min,
        hp_max = params.hp_max,
        collisionbox = params.collisionbox,
        visual = "mesh",
        mesh = "pumpboom.x",
        rotate = 270,
        textures = {{"pumpboom.png"}},
        visual_size = params.visual_size,
        explosion_radius = params.boom_radius,
        makes_footstep_sound = true,
        view_range = params.view_range,
        fear_height = 4,
        walk_velocity = 2,
        run_velocity = 2.5,
        sounds = {
            explode = "tnt_explode"
        },
        damage = 1.5,
        jump = true,
        drops = params.drops,
        armor = 100,
        drawtype = "front",
        water_damage = 2,
        lava_damage = 5,
        light_damage = 0,
        group_attack=true,
        attack_animals=true,
        knock_back=2,
        blood_texture="nssw_blood.png",
        stepheight=1.1,
        on_rightclick = nil,
        attack_type = "explode",
        animation = {
            speed_normal = 25,
            speed_run = 25,
            stand_start = 1,
            stand_end = 30,
            walk_start = 81,
            walk_end = 97,
            run_start = 81,
            run_end = 97,
            punch_start = 70,
            punch_end = 80,
        },
    })
end

register_pumpboom("small",{
    hp_min = 14,
    hp_max = 15,
    visual_size = {x=3, y=3},
    collisionbox = {-0.45, -0.3, -0.45, 0.45, 0.45, 0.45},
    boom_radius = 4,
    view_range = 20,
    drops = {
        {name = "nssw:life_energy",
        chance = 1,
        min = 1,
        max = 2,},
        {name = "nssw:black_powder",
        chance = 2,
        min = 1,
        max = 2,},
    },
})

register_pumpboom("medium",{
    hp_min = 17,
    hp_max = 18,
    visual_size = {x=5, y=5},
    collisionbox = {-0.7, -0.3, -0.7, 0.7, 0.7, 0.7},
    boom_radius = 6,
    view_range = 25,
    drops = {
        {name = "nssw:life_energy",
        chance = 1,
        min = 2,
        max = 3,},
        {name = "nssw:black_powder",
        chance = 2,
        min = 1,
        max = 3,},
    },
})

register_pumpboom("large",{
    hp_min = 19,
    hp_max = 20,
    visual_size = {x=8, y=8},
    collisionbox = {-1.2, -0.3, -1.2, 1.2, 1.2, 1.2},
    boom_radius = 8,
    view_range = 30,
    drops = {
        {name = "nssw:life_energy",
        chance = 1,
        min = 3,
        max = 4,},
        {name = "nssw:black_powder",
        chance = 2,
        min = 2,
        max = 4,},
    },
})
